home *** CD-ROM | disk | FTP | other *** search
/ Die Speccy' 97 / Die Speccy' 97.iso / amiga_system / the_aminet / comm / bbs / bbbbs85.lha / rexx / EditUsers.rexx < prev    next >
OS/2 REXX Batch file  |  1994-09-16  |  1KB  |  57 lines

  1. /* EditUsers.rexx  -  writes one word in one line for ALL bbs userfiles */
  2.  
  3. SAY '*** WARNING ***  This can change ALL user data! Be sure!  *** WARNING ***'
  4.  
  5. linenumber=''
  6. wordnumber=''
  7. newvalue=''
  8. doit=''
  9.  
  10. PARSE ARG linenumber wordnumber newvalue doit .
  11. IF ~DATATYPE(linenumber,'N') | ~DATATYPE(wordnumber,'N') THEN
  12.   SIGNAL USAGE
  13. IF UPPER(newvalue)='DOIT' THEN
  14.   DO
  15.     doit='DOIT'
  16.     newvalue=''
  17.   END
  18.  
  19. IF UPPER(doit)='DOIT' THEN doit=1
  20. ELSE doit=0
  21. userlist=SHOWDIR('BBBBS:Users')
  22. DO i=1 TO WORDS(userlist)
  23.   x=OPEN(f,'BBBBS:Users/'WORD(userlist,i),'R')
  24.   IF x=0 THEN ITERATE i
  25.   lines.=''
  26.   DO j=1
  27.     line=READLN(f)
  28.     IF EOF(f) THEN LEAVE j
  29.     lines.j=line
  30.   END
  31.   CALL CLOSE(f)
  32.   lines.0=j-1
  33.   IF WORDS(lines.linenumber)>=wordnumber THEN
  34.     DO
  35.       windx=WORDINDEX(lines.linenumber,wordnumber)
  36.       lines.linenumber=DELWORD(lines.linenumber,wordnumber,1)
  37.       IF windx=1 THEN lines.linenumber=newvalue'  'STRIP(lines.linenumber)
  38.       ELSE lines.linenumber=INSERT(newvalue' ',lines.linenumber,windx-1)
  39.       IF doit THEN
  40.         DO
  41.           x=OPEN(f,'BBBBS:Users/'WORD(userlist,i),'W')
  42.           IF x=0 THEN ITERATE i
  43.           DO j=1 TO lines.0
  44.             CALL WRITELN(f,STRIP(lines.j))
  45.           END
  46.           CALL CLOSE(f)
  47.         END
  48.     END
  49.   SAY lines.linenumber WORD(userlist,i)
  50. END
  51. EXIT
  52.  
  53. USAGE:
  54. SAY 'Usage> rx EditUsers linenumber wordnumber newvalue DOIT'
  55. SAY 'Test your selection first, then add the DOIT at the end.'
  56. EXIT
  57.